Proposal Title : Hyper - threaded JVM on a FPGA
نویسندگان
چکیده
This project is concerned with researching and implementing a multi-threaded Java Virtual Machine (JVM) that can execute threads concurrently in hardware on a Field Programmable Gate Array (FPGA). A FPGA is a hardware device that has many applications ranging from embedded systems such as Mobile Phones, Signal Processing in Electric Guitars, and PDAs to high performance computing. A standard CPU has a list of instructions that a programmer calls in a specific order to execute the program. With a FPGA the programmer calls just one instruction that creates the program as an electronic circuit on the FPGA. The major difference to note here is that a standard CPU executes single instructions as compared to the FPGA executing the whole program. A JVM is a virtual machine that is able to run Java byte-codes that make up a program. Whatis.com provide a good definition of FPGA [5] and there is a book available for the JVM specification [3]. This JVM will have the ability to execute Java byte-codes directly in hardware as compared to a software JVM that must translate the byte-codes into machine instructions that the CPU can interpret. It will also be able to execute multiple threads in parallel. It will have an increase in speed over a traditional CPU running Java byte-codes due to the byte-codes being directly executed in hardware. Traditional CPUs can only execute one thread (the new Intel XEON can execute two) at a particular moment, they require context switching to switch between different threads. A JVM that can execute multiple threads concurrently in hardware will have a speed advantage over one that can only execute one thread at any particular moment. Kreuzinger et al. [2] have developed a multi-threaded JVM in hardware that is capable of running 4 threads in parallel; their design is a real-time multi-threaded interrupt service system. The aim of this project is to build a JVM which is able to execute lots of threads concurrently in hardware. This project is concerned with a device that can run complex algorithms using multiple threads, instead of having a real-time signal based system.
منابع مشابه
Exploiting FPGA Concurrency to Enhance JVM Performance
The Java Programming Language has been praised for its platform independence and portability, but because of its slow execution speed on a software Java Virtual Machine (JVM), some people decide to use faster languages such as C. Building a JVM in hardware is an obvious solution to this problem. Several approaches have been taken to try to achieve the best solution. One approach is by reducing ...
متن کاملJava Instrumentation Suite: Accurate Analysis of Java Threaded Applications
The rapid maturing process of the Java technology is encouraging users the development of portable applications using the Java language. As an important part of the definition of the Java language, the use of threads is becoming commonplace when programming this kind of applications. Understanding and tuning threaded applications requires the use of effective tools for detecting possible perfor...
متن کاملLightweight Transparent Java Thread Migration for Distributed JVM
A distributed JVM on a cluster can provide a highperformance platform for running multi-threaded Java applications transparently. Efficient scheduling of Java threads among cluster nodes in a distributed JVM is desired for maintaining a balanced system workload so that the application can achieve maximum speedup. We present a transparent thread migration system that is able to support high-perf...
متن کاملPreliminary Experiences using the Java Instrumentation Suite
The rapid maturing process of the Java technology is encouraging users the development of portable applications using the Java language. As an important part of the definition of the Java language, the use of threads is becoming commonplace when programming this kind of applications. Understanding and tuning threaded applications requires the use of effective tools for detecting possible perfor...
متن کاملInterfacing Java with Reconfigurable Hardware
It is well known that Field Programmable Gate Arrays (FPGAs) can be used to accelerate calculations that take too much time on a Central Processing Unit (CPU). Methodologies have been proposed to reconfigure the FPGA at run time, depending on the needs of the system. The CPU and FPGA generally communicate through message passing, letting the programmer decide exactly which data needs to be pass...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003